package com.xbongbong.paas.service;

import com.xbongbong.paas.domain.entity.PaasProcessTemplateEntity;
import com.xbongbong.paas.domain.entity.ext.PaasProcessTemplateNodeEntityExt;
import com.xbongbong.paas.pojo.dto.ProcessOpenDTO;
import com.xbongbong.paas.pojo.dto.ProcessUpdateDTO;
import com.xbongbong.paas.toolbox.exception.XbbException;

import java.util.List;

/**
 * @author: wufeng
 * @date: 2018/8/21 17:40
 * @desrcption: 流程节点操作
 */
public interface PaasProcessTemplateNodeService {

    /**
     * 初始化节点操作--开始节点，结束节点
     * @param processOpenDTO
     * @param paasProcessTemplateEntity
     * @throws XbbException
     */
    void insertInitProcessTemplateNode(ProcessOpenDTO processOpenDTO, PaasProcessTemplateEntity paasProcessTemplateEntity) throws XbbException;


    /**
     * 批量操作流程节点
     * @param nodeEntityAddList 新建的节点
     * @param nodeEntityUpdateList 更新的节点
     * @param nodeEntityDeleteList 删除的节点
     * @param processTemplateEntity 流程模板对象
     * @param processUpdateDTO 前端所传对象
     * @throws XbbException
     */
    void nodeOperate(List<PaasProcessTemplateNodeEntityExt> nodeEntityAddList, List<PaasProcessTemplateNodeEntityExt> nodeEntityUpdateList,
                     List<PaasProcessTemplateNodeEntityExt> nodeEntityDeleteList, PaasProcessTemplateEntity processTemplateEntity, ProcessUpdateDTO processUpdateDTO) throws XbbException;
}
